`timescale 1ns/1ps

module tb_Compress_Func ;

reg [5:0] index_j_in;//0~63
reg [31:0] A_in;
reg [31:0] B_in;
reg [31:0] C_in;
reg [31:0] D_in;
reg [31:0] E_in;
reg [31:0] F_in;
reg [31:0] G_in;
reg [31:0] H_in;
reg [31:0] Wj_in;
reg [31:0] Wj_p_in;

wire [31:0] A_out;
wire [31:0] B_out;
wire [31:0] C_out;
wire [31:0] D_out;
wire [31:0] E_out;
wire [31:0] F_out;
wire [31:0] G_out;
wire [31:0] H_out;

initial begin
    A_in = 0;
    B_in = 0;
    C_in = 0;
    D_in = 0;
    E_in = 0;
    F_in = 0;
    G_in = 0;
    H_in = 0;
    Wj_in = 0;
    Wj_p_in = 0;
    
    #10
    index_j_in = 0;
    A_in =  32'h7380166f;
    B_in =  32'h4914b2b9;
    C_in =  32'h172442d7;
    D_in =  32'hda8a0600;
    E_in =  32'ha96f30bc;
    F_in =  32'h163138aa;
    G_in =  32'he38dee4d;
    H_in =  32'hb0fb0e4e;
    Wj_in = 32'h61626380;
    Wj_p_in = 32'h61626380;
    
    #100;
    $finish;
end

Compress_Func CF(
    .index_j_in(index_j_in),
    .A_in(A_in),
    .B_in(B_in),
    .C_in(C_in),
    .D_in(D_in),
    .E_in(E_in),
    .F_in(F_in),
    .G_in(G_in),
    .H_in(H_in),
    .Wj_in(Wj_in),
    .Wj_p_in(Wj_p_in),

    .A_out(A_out),
    .B_out(B_out),
    .C_out(C_out),
    .D_out(D_out),
    .E_out(E_out),
    .F_out(F_out),
    .G_out(G_out),
    .H_out(H_out)
);


endmodule //tb_Compress_Func